Import('env', 'arch', 'cereal', 'messaging', 'common', 'visionipc', 'gpucommon')


logger_lib = env.Library('logger', ["logger.cc"])
libs = [logger_lib, common, cereal, messaging, visionipc,
        'zmq', 'capnp', 'kj', 'z',
        'avformat', 'avcodec', 'swscale', 'avutil',
        'yuv', 'bz2', 'OpenCL']

src = ['loggerd.cc']
if arch in ["aarch64", "larch64"]:
  src += ['omx_encoder.cc']
  libs += ['OmxCore', 'gsl', 'CB'] + gpucommon
  if arch == "aarch64":
    libs += ['OmxVenc', 'cutils']
  else:
    libs += ['pthread']
else:
  src += ['raw_logger.cc']
  libs += ['pthread']

if arch == "Darwin":
  # fix OpenCL
  del libs[libs.index('OpenCL')]
  env['FRAMEWORKS'] = ['OpenCL']

env.Program('loggerd', ['main.cc'] + src, LIBS=libs)
env.Program('bootlog.cc', LIBS=libs)

if GetOption('test'):
  env.Program('tests/test_logger', ['tests/test_runner.cc', 'tests/test_loggerd.cc', 'tests/test_logger.cc', env.Object('logger_util', '#/selfdrive/ui/replay/util.cc')] + src, LIBS=[libs] + ['curl', 'crypto', 'bz2'])
